/**
 * MobX Polyfill for Wechat Mini Program
 * 为微信小程序环境提供process.env.NODE_ENV对象
 */

// 安全获取全局对象的函数
function getGlobalObject() {
  if (typeof globalThis !== 'undefined') return globalThis;
  if (typeof global !== 'undefined') return global;
  if (typeof window !== 'undefined') return window;
  if (typeof self !== 'undefined') return self;
  return {};
}

// 获取全局对象
const globalObj = getGlobalObject();

// 设置全局process对象
if (typeof globalObj.process === 'undefined') {
  globalObj.process = {
    env: {
      // 默认为生产环境
      NODE_ENV: 'production'
    }
  };
}

// 确保process对象可以直接访问（不通过全局对象）
if (typeof process === 'undefined') {
  var process = globalObj.process;
}

// 确保process.env存在
if (typeof process.env === 'undefined') {
  process.env = {
    NODE_ENV: 'production'
  };
}

// 确保NODE_ENV存在
if (typeof process.env.NODE_ENV === 'undefined') {
  process.env.NODE_ENV = 'production';
}

// 尝试根据微信环境设置更精确的环境值（如果可以访问wx对象）
try {
  if (typeof wx !== 'undefined' && wx.getAccountInfoSync) {
    const envVersion = wx.getAccountInfoSync().miniProgram.envVersion;
    process.env.NODE_ENV = (envVersion === 'release') ? 'production' : 'development';
  }
} catch (e) {
  // 如果获取微信环境信息失败，保持默认值
  // 静默失败，避免不必要的日志
}

// 导出处理后的process对象，方便调试和检查
module.exports = {
  process: process,
  getEnvironment: function() {
    return process.env.NODE_ENV;
  }
}; 